แนวทางการแก้ไขปัญหาปี ค.ศ. 2000 โดย LEW YEAR

ปัญหาของปี ค.ศ. 2000 สืบเนื่องมาจากนาฬิกาในระบบของเครื่องคอมพิวเตอร์

( RTC : Real Time Clock) นาฬิกาของแต่ละเครื่องจะมีรอบปฏิทินที่ออกแบบไว้ให้ใช้งานได้ยาวนานไม่เท่ากัน บางเครื่องสามารถใช้งานได้แค่ถึงปี ค.ศ. 2000 พอเวลาเดินถึงปี ค.ศ. 2000 ก็จะกลับมานับหนึ่งใหม่ที่ปี ค.ศ.1900 เช่นเดียวกับนาฬิกาทั่วไป เมื่อถึงเวลา 12.00 น. แล้วจะกลับมานับหนึ่งใหม่ที่ 00.01 น. ซึ่งแน่นอนว่าปฏิทินของปี ค.ศ.1900 และปฏิทินของปี ค.ศ. 2000 ย่อมแตกต่างกัน อันเป็นเหตุให้การทำงานของโปรแกรมที่ต้องใช้ปฏิทินเป็นหลักในการทำงาน เช่น ระบบบัญชี ระบบการนัดหมาย และระบบข้อมูลเพื่อการบริหารต่างๆจะทำงานคลาดเคลื่อนไปจากความเป็นจริง เนื่องจากไปเอาปฏิทินของปีที่ไม่ถูกต้องมาใช้งาน นอกจากนี้แล้ว โปรแกรมพื้นฐานเบื้องต้นต่างๆ ที่ใช้อยู่ในระบบคอมพิวเตอร์ ( BIOS : Basic Input Output System ) ก็มีขีดความสามารถไม่เท่ากัน โดยจะทำหน้าที่อ่านนาฬิกา ( RTC ) ซึ่งมีค่าของปีเป็นตัวเลขจำนวน 2 หลัก แล้วนำมาตีความเป็นค่าตัวเลขของปีจำนวน 4 หลัก เพื่อส่งค่าต่อให้กับระบบปฏิบัติการ ( OS ; Operating System ) อันเป็นโปรแกรมอีกตัวหนึ่งที่ทำหน้าที่ควบคุมการทำงานของเครื่องคอมพิวเตอร์ทั่วๆไปเพื่อนำค่าของปีไปใช้งานต่อ RTC ซึ่งมีค่าเป็น ‘00’ เมื่อถึงปี ค.ศ. 2000 นี้ BIOS รุ่นใหม่ๆ จะสามารถตีความตัวเลขนี้ให้เป็นปี ค.ศ. 2000 ได้ ในขณะที่ BIOS รุ่นเก่าๆจะตีความตัวเลขนี้เป็นปี ค.ศ. 1900 สำหรับ BIOS รุ่นเก่าๆ นั้นเราสามารถทำการแก้ไขได้โดยการปิดเครื่องในคืนวันที่ 31 ธันวาคม ปี ค.ศ.1999 แล้ว ทำการเปิดเครื่องใหม่ในวันเริ่มทำการของปีใหม่ พร้อมกับการดำเนินการตั้งค่า วันที่ ( DATE ) ให้เป็นวันที่ 4 มกราคม ปี ค.ศ. 2000 การบันทึกค่าปีจำนวน 4 หลักเข้าไปในเครื่องนี้จะทำให้ BIOS สามารถก้าวข้ามปี ค.ศ. 2000 ไปได้ และสามารถจะทำงานหลังจากปี ค.ศ.2000 ได้อย่างถูกต้องต่อไป นอกจาก BIOS ต้องก้าวข้ามปี ค.ศ. 2000 ได้แล้ว BIOS ก็ยังต้องดำเนินการคำนวณปฏิทินให้ถูกต้องอีกด้วย โดยเฉพาะในเดือนกุมภาพันธ์ ของ ปี ค.ศ. 2000 ซึ่งเป็น LEAP YEAR ต้องมีจำนวนวันเป็น 29 วัน (ปีที่ลงท้ายด้วย 000 ถ้าหารด้วย 400 ลงตัวเดือนกุมภาพันธ์ของปีนั้นจะมี 29 วัน)

จากประเด็นต่างๆดังกล่าวข้างต้นนี้ สามารถสรุปได้ว่าถ้าหากปัญหาปี ค.ศ.2000 อันเป็นผลสืบเนื่องมาจากนาฬิกา ( RTC ) การแก้ไขปัญหาที่ตรงจุดที่สุดก็คือการเข้าไปทำการแก้ไขที่นาฬิกาโดยการตั้งวันที่ให้กับมันใหม่ในปี ค.ศ. 2000 ดังได้กล่าวมาแล้วข้างต้น และ/หรือ ซื้อนาฬิกาเรือนใหม่มาใส่เพิ่มให้กับเครื่องคอมพิวเตอร์ ซึ่งในปัจจุบันมีนาฬิกาซึ่งผลิตออกมาในรูปของซ็อฟท์แวร์เป็นจำนวนมากโดยมีวัตถุประสงค์เพื่อให้นำไปใช้ในการทดสอบโปรแกรมที่ได้แก้ไขปัญหาปี ค.ศ. 2000 เรียบร้อยแล้วโดยสามารถตั้งค่าของปีให้เป็นปีใดปีหนึ่งก็ได้ เพื่อให้โปรแกรมใดโปรแกรมหนึ่งนำค่าของปีนั้นๆไปใช้งานได้ ในขณะที่โปรแกรมอื่นๆก็ยังคงใช้งานจากนาฬิกาของเครื่องคอมพิวเตอร์ทำงานตามปกติต่อไป ซึ่งแนวทางการเพิ่มนาฬิกาให้กับเครื่องคอมพิวเตอร์ดังกล่าวนี้ เราสามารถนำไปประยุกต์เพื่อใช้ในการแก้ไขปัญหาปี ค.ศ. 2000 ได้อย่างประหยัดที่สุด และสมเหตุสมผลที่สุด ซึ่งจะได้กล่าวในรายละเอียดต่อไป ส่วนการที่จะใช้วิธีเปลี่ยนระบบปฏิบัติการ ( OS ) หรือ ใช้วิธีการเปลี่ยนตัวเครื่องคอมพิวเตอร์ใหม่ รวมถึงการแก้ไขโปรแกรมทุกๆโปรแกรม จึงยังไม่น่าจะเป็นวิถีทางที่สมเหตุสมผลเท่าที่ควรในยุคของระบบเศรษฐกิจแบบ IMF ในขณะนี้

สาเหตุที่โปรแกรมต่างๆจะต้องทำการแก้ไขปัญหาปี ค.ศ. 2000 ก็สืบเนื่องมาจากตัวโปรแกรม และแฟ้มข้อมูลต่างๆ ของระบบงานต่างๆ ที่ได้ทำการพัฒนาขึ้นมา จะเก็บค่าของปี ค.ศ. เป็นตัวเลขจำนวน 2 หลักเท่านั้น โดยได้ละศตวรรษซึ่งเป็นตัวเลข 2หลักแรกของปีไว้ในฐานที่เข้าว่าเป็น ‘19’ ครั้นเมื่อถึงปี ค.ศ. 2000 การอ่านค่าของปีที่ได้จากเครื่องก็จะเป็น ‘00’ ทำให้คอมพิวเตอร์ไปนำเอาปฏิทินของปี ‘1900’ ไปใช้งานนี่คือความผิดพลาดข้อที่หนึ่ง และเมื่อนำค่าของปีที่ได้จากเครื่องไปลบกับค่าที่ได้จากแฟ้มข้อมูลซึ่งเป็นค่าของปีที่เริ่มทำรายการ ซึ่งอาจเป็นปี ‘99’ หรือ ปี‘98’ ก็จะได้ค่าติดลบออกมานี่คือความผิดพลาดข้อที่สอง ทำให้การคำนวณดอกเบี้ย ค่าธรรมเนียมต่างๆ ผิดพลาด ซึ่งในปัจจุบันก็ได้มีแนวทางในการแก้ไขปัญหาต่างๆดังกล่าวอยู่แล้วหลากหลายวิธี ทั้งการเปลี่ยนแปลงการเก็บค่าของจำนวนปี ค.ศ. เป็นตัวเลข 4 หลัก หรือ FIX WINDOW หรือ SLIDING WINDOW ซึ่งวิธีการต่างๆ ดังกล่าวนี้ก็ยังจะมีปัญหาและอุปสรรคในเรื่องของกำลังบุคลลากร จำนวนเงินงบประมาณ และระยะเวลาที่จะต้องใช้ในการแก้ไขปัญหาดังได้กล่าวมาแล้วในหัวข้อ “ ปัญหาอุปสรรคในการแก้ไขปัญหาปี ค.ศ. 2000 ”

LEW YEAR หรือ ปี ค.ศ. 2028 นี้ สามารถนำมาประยุกต์ใช้เพื่อแก้ไขปัญหาปี ค.ศ. 2000 เฉพาะหน้าได้ เพื่อให้ระบบคอมพิวเตอร์สามารถทำงานต่อไปได้อีกหลายปี แต่จะใช้ทรัพยากรต่างๆ ทั้งกำลังของบุคลลากร จำนวนเงินงบประมาณ และระยะเวลาในการแก้ไขปัญหาปี ค.ศ. 2000 น้อยมาก ที่สำคัญคือมีระดับความถูกต้องสูงมากถึง 100 % เมื่อนำมาเทียบกับการดำเนินการแก้ไขด้วยวิธีการอื่นๆ โดยมีหลักการและเหตุผลโดยสรุปดังนี้

1.การตั้งวันที่ใหม่ให้กับนาฬิกาในเครื่องคอมพิวเตอร์ โดยทั่วไปแล้ว คอมพิวเตอร์จะสามารถคำนวณปฏิทินได้เกินปี ค.ศ. 2000 ซึ่งจะเกินมากหรือน้อยก็ขึ้นอยู่กับยี่ห้อหรือรุ่นของแต่ละเครื่อง โดยเฉพาะในระดับของเครื่องเมนเฟรมแล้วสามารถทำการคำนวณปฏิทินได้ถูกต้องถึงปี ค.ศ. 2042 การเปิด/เปิดเครื่องใหม่ในวันที่ 1 มกราคม ปี ค.ศ. 2000 พร้อมตั้งค่าเวลาให้มันเป็น 1 มกราคม ปี ค.ศ. 2028 จะส่งผลให้ระบบปฏิบัติการได้รับค่าของปีเป็น ปี ค.ศ. 2028 ซึ่งปีนี้จะมีปฏิทินเหมือนกันกับของปี ค.ศ. 2000 ทุกประการ ( บวกหรือลบ 14 ปี ) เช่นในวันที่ 1 ของเดือน มกราคม ปี ค.ศ. 2028 เป็นวันเสาร์ ก็จะมีวันที่ 1 มกราคม ของ ปี ค.ศ. 2000 เป็นวันเสาร์ด้วยเช่นเดียวกัน ซึ่งรวมไปถึงปีบวกลบด้วย เช่น ปี ค.ศ. 2027 ก็จะมีวันที่ต่างๆของปีเหมือนกับปี ค.ศ.1999 ทุกประการเช่นเดียวกัน ที่สำคัญก็คือ เดือนกุมภาพันธ์ ของทั้งปี ค.ศ.2028 และ ปี ค.ศ. 2000 จะมีจำนวนวันในเดือนกุมภาพันธ์เป็น 29 วันเหมือนกัน จะเรียกว่าเป็นปีฝาแฝดกันก็ย่อมได้ การที่ให้ปีของเครื่องคอมพิวเตอร์ขยับไปข้างหน้า 28 ปี พร้อมๆกับการขยับปีของแฟ้มข้อมูลซึ่งเป็นปีที่เริ่มทำรายการไปข้างหน้า 28 ปี จะทำให้ เมื่อมีการคำนวณระยะเวลาของรายการ ปัญหาค่าติดลบก็จะหมดไป การแก้ปัญหาด้วยวิธีนี้จะมีข้อจำกัดอยู่เพียงประการเดียวคือ ระบบงานทุกระบบงาน โปรแกรมทุกโปรแกรมในเครื่องคอมพิวเตอร์จะต้องใช้หลักการนี้ทั้งหมด ซึ่งส่วนใหญ่แล้วจะยอมรับไม่ค่อยได้สำหรับข้อจำกัดในประเด็นนี้

2.การเพิ่มนาฬิกาเรือนใหม่ให้กับเครื่องคอมพิวเตอร์ ด้วยวิธีการซื้อซ็อฟท์แวร์ที่ทำหน้าที่เป็นนาฬิกามาใส่ให้กับเครื่องคอมพิวเตอร์ดังได้กล่าวมาแล้วข้างต้นจะทำให้เครื่องคอมพิวเตอร์มีปฏิทินหรือนาฬิกา 2 ชุดในขณะเดียวกัน ชุดที่หนึ่งเป็นปี ค.ศ. 2000 และอีกชุดหนึ่งเป็นปี ค.ศ. 2028 ด้วยวิธีการนี้จะทำให้ข้อจำกัดของวิธีการการตั้งวันที่ใหม่ให้กับนาฬิกาในเครื่องคอมพิวเตอร์หมดไป และถ้าระบบงานหนึ่งๆจะเลือกใช้ปฏิทินทั้ง 2 ชุดให้เหมาะสมกับโปรแกรมแต่ละโปรแกรมในขณะเดียวกัน โดยการให้ทำงานประสานกันอย่างกลมกลืนก็จะทำให้การแก้ไขปัญหาปี ค.ศ. 2000 เป็นไปอย่างมีประสิทธิภาพสูงสุด และสมบูรณ์แบบมากที่สุด ซึ่งมีรายละเอียดของวิธีการทำงานดังนี้

2.1.แฟ้มข้อมูล จำเป็นต้องมีการจัดทำโปรแกรมง่ายๆ ขึ้นมาตัวหนึ่ง เพื่อทำการแก้ไขข้อมูลที่เป็นค่าวันที่ต่างๆ ให้เพิ่มค่าขึ้น 28 ปี ทุกๆรายการ ( ไม่มีการยกเว้น ) โดยกระบวนการทำซ้ำ ( LOOP ) เช่น ปี ค.ศ. 1999 มีค่าเท่ากับ 99 ให้บวกด้วย 28 ซึ่งจะให้ค่าเป็น 27 หรือ 1998 ให้บวกด้วย 28 จะให้ค่าเป็น 26 เป็นต้น

2.2.รายการเชื่อมโยงกับระบบคอมพิวเตอร์อื่นๆ ในกรณีของระบบ ONLINE ก็ให้ดำเนินการเช่นเดียวกันกับวิธีการของแฟ้มข้อมูล คือ จะต้องมีโปรแกรมง่ายๆ ดักอยู่ที่ประตูขาเข้าและประตูขาออกอย่างละหนึ่งโปรแกรม เมื่อมีรายการผ่านเข้ามาก็ให้ทำการบวกด้วย 28 พอดำเนินการประมวลผลเสร็จสิ้นแล้วจะส่งผลที่ได้กลับสู่ปลายทางก็ให้นำ 28 ไปลบออกจากค่าที่จะส่งออกไป การรับส่งข้อมูลของปีโดยใช้ตัวเลข 2 หลักนี้ถือว่าเป็นสากล ไม่ว่าจะเป็นระบบ ATM หรือระบบบัตรเครดิตทั่วโลก ยังคงใช้ตัวเลขตัวเลข 2 หลักของปีในการแลกเปลี่ยนข้อมูลกันเช่นเดิม ไม่ว่าจะก่อนหรือหลังปี ค.ศ. 2000 ซึ่งจะเป็นการยืนยันอีกชั้นหนึ่งว่าวิธีการแก้ไขปัญหาแบบ LEW YEAR นี้ เป็นวิธีการที่ได้มาตราฐานสากล มิได้ออกนอกลู่นอกทางแต่ประการใด

โปรแกรมของระบบงานต่างๆ ไม่ต้องมีการแก้ไขใดๆ ทั้งสิ้น เนื่องจากปัญหาของค่าที่ติดลบ อันเนื่องมาจากค่าของปี ค.ศ. 2000 ที่เป็นค่า ‘00’ ซึ่งเป็นค่าตัวตั้ง ได้ถูกเปลี่ยนเป็นค่า 28 ไปแล้ว และปีที่เกิดรายการซึ่งเป็นตัวลบ ก็จะมีค่าที่น้อยกว่า 28 คือ 27,26 ตามลำดับ ดังนั้นปัญหาของค่าที่ติดลบ จึงได้รับการแก้ไขอย่างสมบูรณ์ที่สุด เนื่องจากไม่ได้มีการแตะต้องตัวโปรแกรม ซึ่งทำงานได้ถูกต้องดีอยู่แล้ว เพียงแต่เขียนโปรแกรมง่ายๆเพื่อบวก/ลบจำนวนปีแปะเพิ่มเข้าไปเท่านั้นทั้งที่ประตูขาเข้า และประตูขาออก

3.โปรแกรมผลิตรายงาน โปรแกรมผลิตรายงานถือเป็นส่วนสุดท้ายของระบบงานและมีปริมาณงานไม่เกิน 25% ของระบบงาน อีกทั้งความสลับซับซ้อนก็มีน้อยมากเมื่อเทียบกับโปรแกรมส่วนอื่นๆของระบบงานเช่น EDIT UPDATE ดังนั้นหากจำเป็นต้องแก้ไขโปรแกรมผลิตรายงาน ก็สามารถใช้วิธีการเดียวกันกับ รายการเชื่อมโยงกับระบบคอมพิวเตอร์อื่นๆ กล่าวคือ จะต้องมีโปรแกรมง่ายๆดักอยู่ที่ประตูขาเข้าเพื่อปรับปรุงค่าของปี ค.ศ.ที่ได้รับจากการอ่านจากแฟ้มข้อมูลเข้ามา แล้วลบด้วย 28 ก่อนส่งค่าให้กับโปรแกรมผลิตรายงาน(เดิม)ทำงานต่อไป โดยไม่ต้องสนใจว่าโปรแกรมนั้นมีขั้นตอนการทำงานอย่างไร และสามารถตรวจสอบความถูกต้องได้อย่างง่ายดายเพียงดูผลลัพธ์ของรายงานที่ผลิตออกมาเท่านั้น ทั้งนี้เนื่องจากโปรแกรมผลิตรายงานโดยทั่วไปแล้วจะไม่มีการนำค่าของวันที่ หรือ ปี ค.ศ. ไปคำนวณแต่อย่างใด เพียงอ่านค่าของวันที่แล้วนำมาแสดงผลในรายงานเท่านั้น ดังนั้นการแก้ไขโปรแกรมผลิตรายงานจึงเป็นสิ่งที่ทำได้ง่ายและมีความเสี่ยงต่ำมาก (หากจำเป็นต้องทำ) สำหรับกรณีของรายงานที่ถือว่าวันที่ที่ออกรายงาน (Run Date) เป็นสาระสำคัญของรายงาน ก็สามารถจะใช้วิธีการเพิ่มนาฬิกาให้กับเครื่องคอมพิวเตอร์ แล้วให้โปรแกรมออกรายงานใช้นาฬิกาที่ได้ตั้งวันที่ไว้เป็นปี ค.ศ. 2000 ในการทำงานแทน

back to main